package com.xnyzc.lhy.mis.service.cms.user;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.mis.entity.param.cms.OfficeParam;
import com.xnyzc.lhy.mis.entity.param.cms.user.SupplierSeparateAccountParam;
import com.xnyzc.lhy.mis.entity.param.cms.user.SysDriverManagerParam;
import com.xnyzc.lhy.mis.entity.param.cms.user.SysUserParam;
import com.xnyzc.lhy.mis.entity.system.OaSysUserSeparateAccount;

import java.util.List;


/**
 * <p>
 * 用户管理相关
 * </p>
 *
 * @author wangshuo
 * @since 2019-08-07
 */
public interface SysUserService {

    /**
     * 获取系统用户管理列表
     *
     * @return
     */
    Rv getSysUserList(OfficeParam officeParam);

    /**
     * 系统用户管理列表(获取已开通城市)
     *
     * @return
     */
    Rv getSysOpenCity();


    /**
     * 系统用户管理列表全部城市
     *
     * @return
     */
    Rv getSysAllCity();


    /**
     * 获取用户、司机详情
     *
     * @return
     */
    Rv getUserDetails(OfficeParam officeParam);

    /**
     * 管理员详情
     *
     * @return
     */
    Rv getSysUserDetails(OfficeParam officeParam);

    /**
     * 修改账号状态
     *
     * @return
     */
    Rv getUpdateSysUserStatus(OfficeParam officeParam);

    /**
     * 管理员删除
     *
     * @return
     */
    Rv getDeleteSysUser(OfficeParam officeParam);

    /**
     * 管理员新增、修改
     *
     * @return
     */
    Rv getUpdateSysUser(SysUserParam sysUserParam);

    /**
     * 供应商新增、修改
     *
     * @return
     */
    Rv updateDriverManager(SysDriverManagerParam param);

    /**
     * 获取供应商列表
     *
     * @param param
     * @return
     */
    Rv getDriverManagers(SysDriverManagerParam param);

    /**
     * 获取供应商分账列表
     * @param param
     * @return
     */
    Rv getSupplierSeparateAccount(SupplierSeparateAccountParam param);

    /**
     * 添加或更新供应商分账列表
     * @param param
     * @return
     */
    Rv addOrUpdateSupplierSeparateAccount(List<OaSysUserSeparateAccount> param);
    /**
     * 获取供应商列表
     *
     * @param cityId
     * @return
     */
    Rv getDriverManagersByCity(String cityId);

    /**
     * 根据Id获取供应商信息
     *
     * @param id
     * @return
     */
    Rv getDriverManagerById(String id);

    Rv getDriverByManager(String id,String vehicleTeam,String driverName,
                          String driverPhone,String vehNo,Integer vehicleType);
}
